The ubiquitous nature of networks and data systems facilitates the widespread access to large amounts of data. Enterprises, for example, now support distributed as well as local data systems that store all kinds of data related to, for example, financials, sales, products, project management, human resources, and so on. Thus, the ability of a user to access data from the server systems can impact performance of servers, networks, and client systems.
Conventional data systems typically involve the query and retrieval of large datasets. It is difficult to support interactive viewing and editing of large, hierarchical datasets in a client/server system in a way that promotes a positive user experience. Sorting, grouping, and other view operations that require the whole dataset are very resource intensive and scale poorly on the server as the number of users increases. Moreover, as records are added into levels of the hierarchy, these records also need to be accounted for in the above operations. When these constraints are coupled with the added complexity of a hierarchical dataset (e.g., a project that contains multiple levels of tasks), the complexity of the problem increases and performance on the client and/or server suffers.